Get name and definition of all table types
You can see the list of names:

SELECT name FROM sys.table_types;


To see the definition, you can go to Object Explorer:


  


If you want to automate this, at least for the columns / data types (this leaves out indexes, keys, etc.) you can build the following:

DECLARE @sql nvarchar(max) = N'', 
  @stub nvarchar(max) = N'SELECT N''$--obj--$'', 
   name, system_type_name
   FROM sys.dm_exec_describe_first_result_set(''DECLARE 
   @tvp $--obj--$; SELECT * FROM @tvp;'',null,null)
   ORDER BY column_ordinal;';

SELECT @sql += REPLACE(@stub, N'$--obj--$', 
  QUOTENAME(s.name) + N'.' + QUOTENAME(t.name))
FROM sys.table_types AS t
INNER JOIN sys.schemas AS s
ON t.[schema_id] = s.[schema_id];

EXEC sys.sp_executesql @sql;


This produces output like the following (one resultset for each table type):


  


Of course, it will error if you have named a table type with an apostrophe - don't do that).